package com.malamute.core.covert;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

/**
 * @Title:EnumCovert.java
 * @Package com.malamute.core.covert
 * @Description Enum转换
 * @author AceGuan gjybst@163.com
 * @date 2012-1-31 上午10:03:03
 * @version v1.0
 */
public class GenericEnumConverter extends StrutsTypeConverter {

	/*
	 * (non-Javadoc)
	 * 
	 * @param context
	 * 
	 * @param values
	 * 
	 * @param toClass
	 * 
	 * @return
	 * 
	 * @see
	 * org.apache.struts2.util.StrutsTypeConverter#convertFromString(java.util
	 * .Map, java.lang.String[], java.lang.Class)
	 */
	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		if (toClass.isEnum()) {
			if (values == null) {// 这个value的值就是 传来参数,比如性别的:男或女.
				return null;
			}
			if (values.length == 1) {
				// 大家都知道表单中的name是可以同名的,当然会有数个的情况
				return Enum.valueOf(toClass, values[0]);
			} else {
				Object[] oo = new Object[values.length];
				for (int i = 0; i < values.length; i++) {
					oo[i] = Enum.valueOf(toClass, values[i]);
				}
				return oo;
			}
		} else {
			return null;
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @param context
	 * 
	 * @param o
	 * 
	 * @return
	 * 
	 * @see
	 * org.apache.struts2.util.StrutsTypeConverter#convertToString(java.util
	 * .Map, java.lang.Object)
	 */
	@Override
	public String convertToString(Map context, Object o) {
		return null;
	}

}
